/*
Date:20210522 20:14PM
key:1.写了个字符串按符号切割函数，并同时带动下标前进。
    2.还写了字符串转整形的函数(stoi默认不支持有前导0的转换)
*/
class Solution {
public:
    //截取下一个.前的整数并推进i下标
    int sp(string&s,int&i)
    {
        string s1="";
        for(;i<s.size();i++)
        {
            if(s[i]>='0'&&s[i]<='9')
            {
                s1=s1+s[i];
            }
            else
            {
                //碰到符号break前要跳过
                i++;
                break;
            }
        }
        return delet0(s1);
    }
    //删除前导0
    int delet0(string&s)
    {
        int i;
        //cout<<"yes";
        for(i=0;i<s.size();i++)
        {
            
            if(s[i]!='0')
            {
                string s1="";
                for(int j=i;j<s.size();j++)
                {
                    s1=s1+s[j];
                }
                //cout<<s1<<" ";
                return stoi(s1);
                break;
            }
        }
        return 0;

    }
    int compare(int&a, int&b) 
    {

        if(a>b){return 1;}
        else{return -1;}
    }
    int compareVersion(string version1, string version2) 
    {
        if(version1==version2){return 0;}
        
        int i=0;
        int j=0;
        while(i!=version1.size()&&j!=version2.size())
        {
            //下一个.前字符串转成正数
            int n1=sp(version1,i);
            int n2=sp(version2,j);
            if(s1==s2){continue;}
            else
            {
                return compare(s1, s2);
            }
            
        }
        //如果1没到尽头且往后有非0整数，1大
        while(i!=version1.size())
        {
            if(sp(version1,i)!=0){return 1;}
        }

        while(j!=version2.size())
        {
            if(sp(version2,j)!=0){return -1;}
        }

        return 0;
    }
};